# 设置CMake所需的最低版本
cmake_minimum_required(VERSION 3.15 FATAL_ERROR)
# cmake_minimum_required(VERSION 3.5)

# 设置项目的名称
project(demo)
# project(demo LANGUAGES CXX)

# 设置C++版本
set(CMAKE_CXX_STANDARD 20)

# 设置构建类型
set(CMAKE_BUILD_TYPE "Release")

# 添加存放头文件的文件夹
include_directories(${PROJECT_SOURCE_DIR}/include)

# 创建执行程序
# add_executable(test main.cpp)

# set(SRC_LIST ${PROJECT_SOURCE_DIR}/main.cpp)
# add_executable(test ${SRC_LIST})

aux_source_directory(${PROJECT_SOURCE_DIR} SRC_LIST)
add_executable(test ${SRC_LIST})

# 设置编译后的程序存放位置
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR})

# 链接动态库
target_link_libraries(test 
    ${PROJECT_SOURCE_DIR}/lib/libopencv_world.so
)

# 条件控制编译(set优先级会更高)
# set(LOAD_FFMPEG OFF)
option(LOAD_FFMPEG "Whether to load FFmpeg" ON)
if(NOT DEFINED LOAD_FFMPEG)  # 如果没有通过命令行设置
    set(LOAD_FFMPEG ON)
endif()
if(LOAD_FFMPEG)
    message("load ffmpeg success")
else()
    message("load ffmpeg fail")
endif()

# 检测操作系统
message(${CMAKE_SYSTEM_NAME})
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
    message("linux")
else()
    message("other")
endif()

# 给源代码设置宏
target_compile_definitions(test PUBLIC IS_LINUX)

# 获取处理器架构
message(${CMAKE_HOST_SYSTEM_PROCESSOR})